/**
 * Created by Administrator on 2018/11/25 0025.
 */
let Promise = require('bluebird');
const utils = require('../../public/utils');
const dictKindModel = require('../../model/dict-kind-model');
const dictModel = require('../../model/dict-model');
const dictArr = [dictKindModel,dictModel];

const obj = {
    //添加字典
    add(obj,index) {
        return new Promise((resolve,reject) => {
            const dict = new dictArr[index](obj);
            dict.save(err => {
                if(err) {
                    console.log(err);
                    resolve(false);
                    return;
                }
                resolve(true);
            })
        })
    },
    /*
    * 根据条件删除某条
    * @params：
    *   @delObjOpt  删除条件
    *
    *   疑问： 多条符合删除条件，那么都会被删除吗？？
    * */
    delete(delObjOpt,index) {
        return new Promise((resolve,reject) => {
            dictArr[index].remove(delObjOpt,(err) => {
                if(err) {
                    resolve(false);
                    return;
                }
                resolve(true)
            })
        })
    },

    /*
    * 根据id更新内容
    *
    * */
    update(_id,updateData,index) {
        return new Promise((resolve,reject) => {
            dictArr[index].update({_id},updateData,(err) => {
                if(err) {
                    resolve(false);
                    return;
                }
                resolve(true)
            })
        })
    },

    /*
     * 根据条件查找内容
     *
     * */
    find(findOpt,index,showObj={},searchHandle={}) {
        return new Promise((resolve,reject) => {
            dictArr[index].find(findOpt,showObj,searchHandle,(err,docs) => {
                if(err) {
                    console.log(err);
                    resolve(false);
                    return;
                }
                resolve(docs);
            })
        })
    },

    //获取集合总条数
    getCount() {
        return new Promise((resolve,reject) => {
            dictKindModel.getCount(total => {
                resolve(total);
            })
        })
    }
}


module.exports = obj;